﻿/* 
    Jolt Environment
    Copyright (C) 2010 Jolt Environment Team

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using RuneScape.Model.Items.Containers;

namespace RuneScape.Model.Items
{
    /// <summary>
    /// Equipment items that can be equipt.
    /// </summary>
    public static class EquipmentItems
    {
        #region Fields
        /// <summary>
        /// Possible capes that can be equipt.
        /// </summary>
        public static readonly short[] Capes = 
        {
            3781, 3783, 3785, 3787, 3789, 3777, 3779,
		    3759, 3761, 3763, 3765, 6111, 6570, 6568, 1007, 1019, 1021, 1023,
		    1027, 1029, 1031, 1052, 2412, 2413, 2414, 4304, 4315, 4317, 4319,
		    4321, 4323, 4325, 4327, 4329, 4331, 4333, 4335, 4337, 4339, 4341,
		    4343, 4345, 4347, 4349, 4351, 4353, 4355, 4357, 4359, 4361, 4363,
		    4365, 4367, 4369, 4371, 4373, 4375, 4377, 4379, 4381, 4383, 4385,
		    4387, 4389, 4391, 4393, 4395, 4397, 4399, 4401, 4403, 4405, 4407,
		    4409, 4411, 4413, 4514, 4516, 6070, 6568, 6570, 9074, 9101, 9747, 
            9748, 9750, 9751, 9753, 9754, 9756, 9757, 9759, 9760, 9762, 9763, 
            9765, 9766, 9768, 9769, 9771, 9772, 9774, 9775, 9777, 9778, 9780, 
            9781, 9783, 9784, 9786, 9787, 9789, 9790, 9792, 9793, 9795, 9796, 
            9798, 9799, 9801, 9802, 9804, 9805, 9807, 9808, 9810, 9811, 9813, 
            9948, 9949, 10069, 10071, 10073, 10074, 10171, 10446, 10448, 10450, 
            10498, 10499, 10566, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 
            10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 
            10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 
            10662, 10663, 10664, 10720, 12169, 12170, 12524, 12634, 12645, 12842
        };

        /// <summary>
        /// Possible boots that can be equipt.
        /// </summary>
        public static readonly short[] Boots =
        {
            7596, 6619, 7159, 7991, 6666, 6061, 6106, 88,
		    89, 626, 628, 630, 632, 634, 1061, 1837, 1846, 2577, 2579, 2894,
		    2904, 2914, 2924, 2934, 3061, 3105, 3107, 3791, 4097, 4107, 4117,
		    4119, 4121, 4123, 4125, 4127, 4129, 4131, 4310, 5064, 5345, 5557,
		    6069, 6106, 6143, 6145, 6147, 6328, 6920, 6349, 6357, 3393, 9005, 
            9006, 9073, 9100, 9638, 9644, 9921, 10552, 10607, 10689, 10696, 
            10724, 10839, 10865, 10933, 10958, 11016, 11019, 11728, 11732, 12565
        };

        /// <summary>
        /// Possible gloves that can be equipt.
        /// </summary>
        public static readonly short[] Gloves =
        {
            7595, 6629, 2491, 1065, 2487, 2489, 3060,
		    1495, 775, 777, 778, 6708, 1059, 1063, 1065, 1580, 2487, 2489,
		    2491, 2902, 2912, 2922, 2932, 2942, 3060, 3799, 4095, 4105, 4115,
		    4308, 5556, 6068, 6110, 6149, 6151, 6153, 6922, 7454, 7455, 7456,
		    7457, 7458, 7459, 7460, 7461, 7462, 6330, 3391, 8842, 8929, 9072, 
            9099, 9922, 10023, 10024, 10075, 10077, 10079, 10081, 10083, 10085,
            10336, 10368, 10376, 10384, 10553, 10554, 10725, 11136, 11138, 11140,
            12629, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864, 
            12865, 12985, 12986, 12988, 12989, 12991, 12992, 12994, 12995, 12997,
            12998, 13000, 13001, 13003, 13004, 13006, 13007
        };

        /// <summary>
        /// Possible shields that can be equipt.
        /// </summary>
        public static readonly short[] Shields =
        {
            7342, 7348, 7354, 7360, 7334, 7340, 7347,
		    7352, 7358, 7356, 7350, 7344, 7332, 7338, 7336, 7360, 1171, 1173,
		    1175, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195,
		    1197, 1199, 1201, 1540, 2589, 2597, 2603, 2611, 2621, 2629, 2659,
		    2667, 2675, 2890, 3122, 3488, 3758, 3839, 3840, 3841, 3842, 3843,
		    3844, 4072, 4156, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231,
		    4232, 4233, 4234, 4302, 4507, 4512, 6215, 6217, 6219, 6221, 6223,
		    6225, 6227, 6229, 6231, 6233, 6235, 6237, 6239, 6241, 6243, 6245,
		    6247, 6249, 6251, 6253, 6255, 6257, 6259, 6261, 6263, 6265, 6267,
		    6269, 6271, 6273, 6275, 6277, 6279, 6524, 6889, 8714, 8716, 8718, 
            8720, 8722, 8724, 8726, 8728, 8730, 8732, 8734, 8736, 8738, 8740, 
            8742, 8744, 8746, 8748, 8750, 8752, 8754, 8756, 8758, 8760, 8762, 
            8764, 8766, 8768, 8770, 8772, 8774, 8776, 8844, 8845, 8846, 8847, 
            8848, 8849, 8850, 8856, 9065, 9704, 9731, 10352, 10665, 10666,
            10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 
            10676, 10677, 10678, 10679, 10826, 10877, 10878, 10879, 10880, 
            10881, 10882, 10886, 11283, 11284, 12908, 12909, 12910, 12911, 
            12912, 12913, 12915, 12916, 12917, 12918, 12919, 12920, 12922, 
            12923, 12924, 12925, 12926, 12927, 12929, 12930, 12931, 12932, 
            12933, 12934
        };

        /// <summary>
        /// Possible hats that can be equipt.
        /// </summary>
        public static readonly short[] Hats =
        {
            4041, 4042, 4502, 7319, 7321, 7323, 7325,
		    7327, 1167, 8074, 4168, 1169, 6665, 6665, 7321, 6886, 6547, 6548,
		    2645, 2647, 2649, 4856, 4857, 4858, 4859, 4880, 4881, 4882, 4883,
		    4904, 4905, 4906, 4907, 4928, 4929, 4930, 4931, 4952, 4953, 4954,
	    	4955, 4976, 4977, 4978, 4979, 4732, 4753, 4611, 6188, 6182, 4511,
	    	4056, 4071, 4724, 2639, 2641, 2643, 2665, 6109, 5525, 5527, 5529,
	    	5531, 5533, 5535, 5537, 5539, 5541, 5543, 5545, 5547, 5549, 5551,
	    	74, 579, 656, 658, 660, 662, 664, 740, 1017, 1037, 1040, 1042,
	    	1044, 1046, 1048, 1050, 1053, 1055, 1057, 1137, 1139, 1141, 1143,
	    	1145, 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165,
	    	1506, 1949, 2422, 2581, 2587, 2595, 2605, 2613, 2619, 2627, 2631,
	    	2633, 2635, 2637, 2651, 2657, 2673, 2900, 2910, 2920, 2930, 2940,
	    	2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988,
	    	2989, 2990, 2991, 2992, 2993, 2994, 2995, 3057, 3385, 3486, 3748,
    		3749, 3751, 3753, 3797, 4071, 4089, 3755, 4099, 4109, 4164, 4302,
	    	4506, 4511, 4513, 4515, 4551, 4567, 4708, 4716, 4724, 4745, 4753,
	    	4856, 4857, 4858, 4859, 4880, 4881, 4882, 4883, 4904, 4905, 4906,
	    	4907, 4952, 4953, 4954, 4955, 4976, 4977, 4978, 4979, 5013, 5014,
	    	5554, 5574, 6109, 6128, 6131, 6137, 6182, 6188, 6335, 6337, 6339,
	    	6345, 6355, 6365, 6375, 6382, 6392, 6400, 6918, 6656, 2581, 7539,
	    	7394, 7396, 7534, 5574, 6885, 6858, 6860, 6862, 6856, 6326, 6128,
	    	6137, 7400, 7323, 7325, 7327, 7003, 8949, 8950, 8959, 8960, 8961, 
            8962, 8963, 8964, 8965, 9069, 9103, 9106, 9815, 10693, 10694, 
            10695, 10731, 10734, 10758, 10760, 10762, 10764, 10766, 10768,
            10770, 10772, 10774, 10796, 10802, 10804, 10806, 10836, 10883,
            10941, 11969, 12210, 12212, 12213, 12215, 12216, 12218, 12219,
            12221, 12222, 12224, 12595, 12660, 12661, 13101, 13103, 13166,
            13188, 13189, 13190, 13191, 13192, 13193, 13194, 13277, 13299,
            13370, 13372, 13374, 10862, 8924, 8925, 8926, 8927, 8928, 9472,
            9729, 9733, 9749, 9752, 9755, 9758, 9761, 9764, 9767, 9770, 
            9773, 9776, 9779, 9782, 9785, 9788, 9791, 9794, 9797, 9800,
            9803, 9806, 9809, 9812, 9814, 9945, 9946, 9950, 10039, 10045,
            10051, 10172, 10286, 10288, 10290, 10292, 10294, 10296, 10298, 
            10300, 10302, 10304, 10306, 10308, 10310, 10312, 10314, 10334,
            10342, 10374, 10382, 10390, 10392, 10398, 10452, 10454, 10456,
            10507, 10547, 10548, 10549, 10550, 10589, 10601, 10602, 10603,
            10604, 10606, 10608, 10613, 10614, 10699, 10700, 10701, 10702,
            10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 
            10712, 10713, 10722, 10740, 10746, 11200, 11280, 11282, 11789, 
            11790, 12171, 12204, 12206, 12207, 12209, 12559, 12568, 12658, 
            12659, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 
            12866, 12867, 12868, 12869, 12870, 12871, 12887, 12888, 12889, 
            12890, 12891, 12892, 12936, 12937, 12938, 12939, 12940, 12941, 
            12943, 12944, 12945, 12946, 12947, 12948, 12950, 12951, 12952, 
            12953, 12954, 12955, 12957, 12958, 12959, 12960, 12961, 12962, 
            12964, 12965, 12966, 12967, 12968, 12969, 13105, 13107, 13109, 
            13111, 13113, 13115, 13167, 13168, 13169, 13170, 13171, 13172, 
            13173, 13263, 13339, 13340, 13341, 13342, 13343, 13344, 13345,
            13346, 13347, 13348, 13349, 13350, 13351, 13352, 13353, 13354, 
            13355, 13357, 13376, 13377, 13378, 13399, 13400, 8464, 8466, 
            8468, 8470, 8472, 8474, 8476, 8478, 8480, 8482, 8484, 8486, 
            8488, 8490, 8492, 8494, 8682, 8684, 8686, 8688, 8690, 8692, 
            8694, 8696, 8698, 8700, 8702, 8704, 8706, 8708, 8710, 8712, 
            8901, 8903, 8905, 8907, 8909, 8911, 8913, 8915, 8917, 8919, 
            8921, 9068, 9096, 9629, 9672, 9920, 9925, 10350, 10609, 10612,
            10615, 10616, 10617, 10629, 10692, 10721, 10723, 10728, 10828,
            11021, 11277, 11278, 11335, 11663, 11664, 11665, 11674, 11675, 
            11676, 11718, 12558, 12662, 12663, 12664, 12665, 12666, 12667, 
            12668, 12669, 12670, 12671, 12680, 12681, 13396, 13397, 13398
        };

        /// <summary>
        /// Possible amulets that can be equipt.
        /// </summary>
        public static readonly short[] Amulets =
        {
            1654, 1656, 1658, 1660, 1662, 1664, 8081,
		    8033, 7968, 6585, 86, 87, 295, 421, 552, 589, 1478, 1692, 1694,
		    1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712, 1725, 1727,
		    1729, 1731, 4021, 4081, 4250, 4677, 6040, 6041, 6208, 1718, 1722,
		    6859, 6863, 6857, 9083, 9102, 9470, 9816, 10132, 10344, 10354, 
            10356, 10358, 10360, 10362, 10364, 10366, 10470, 10472, 10474, 
            10500, 10588, 10719, 10736, 10738, 11090, 11105, 11107, 11109,
            11111, 11113, 11128, 11190, 11191, 11192, 11193, 11194, 11195, 
            12608, 12610, 12612, 12614, 12616, 12618, 12620, 12622
        };

        /// <summary>
        /// Possible arrows that can be equipt.
        /// </summary>
        public static readonly short[] Arrows =
        {
            8052, 8065, 7919, 7906, 78, 598, 877, 878,
		    879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891,
		    892, 893, 942, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539,
		    2540, 2541, 2866, 4160, 4172, 4173, 4174, 4175, 4740, 5616, 5617,
		    5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 6061,
		    6062
        };

        /// <summary>
        /// Possible rings that can be equipt.
        /// </summary>
        public static readonly short[] Rings = 
        {
            773, 1635, 1637, 1639, 1641, 1643, 1645,
		    2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564, 2566, 2568, 2570,
		    2572, 4202, 4657, 6465, 6737, 6731, 6735, 6735, 6583, 6733, 11069,
            11072, 11074, 11076, 11079, 11081, 11083, 11085, 11088, 11092,
            11095, 11097, 11099, 11101, 11103, 11115, 11118, 11120, 11122, 
            11124, 11126, 11130, 11133
        };

        /// <summary>
        /// Possible body (torso) clothes that can be equipt.
        /// </summary>
        public static readonly short[] Body =
        {
            7362, 7364, 636, 638, 640, 642, 644, 426,
		    1005, 1757, 7592, 6617, 7376, 544, 7372, 7370, 577, 3793, 3775,
		    3773, 3771, 3769, 3767, 6139, 1135, 2499, 2501, 1035, 540, 5553,
		    4757, 1833, 6388, 6384, 4111, 4101, 4091, 6186, 6184, 6180, 3058,
		    4509, 4504, 4069, 4728, 4736, 4712, 6107, 2661, 3140, 1101, 1103,
		    1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121, 1123, 1125,
		    1127, 1129, 1131, 1133, 2583, 2591, 2599, 2607, 2615, 2623, 2653,
		    2669, 3481, 4712, 4720, 4728, 4749, 4892, 4893, 4894, 4895, 4916,
		    4917, 4918, 4919, 4964, 4965, 4966, 4967, 6107, 6133, 6322, 6322,
		    6129, 75, 6916, 6916, 4111, 6654, 6654, 75, 7399, 7390, 7374, 5575,
		    2503, 6341, 6351, 3387, 5030, 5032, 5034, 5030, 5032, 5034, 7392,
		    546, 13358, 13360, 13362, 8839, 8952, 8953, 8954, 8955, 8956, 8957, 
            8958, 9070, 9097, 9634, 9640, 9674, 9924, 9944, 10037, 10043, 10049, 
            10053, 10057, 10061, 10065, 10316, 10318, 10320, 10322, 10324, 10330, 
            10338, 10348, 10370, 10378, 10386, 10400, 10404, 10408, 10412, 10416, 
            10420, 10424, 10428, 10432, 10436, 10458, 10460, 10462, 10551, 10564,
            10605, 10610, 10611, 10618, 10619, 10620, 10621, 10622, 10623, 10624,
            10625, 10626, 10627, 10628, 10630, 10631, 10632, 10633, 10680, 10681,
            10682, 10683, 10684, 10685, 10688, 10690, 10691, 10697, 10698, 10714,
            10715, 10716, 10717, 10718, 10727, 10748, 10750, 10752, 10754, 10756,
            10776, 10778, 10780, 10782, 10784, 10786, 10788, 10790, 10792, 10794,
            10798, 10800, 10837, 10863, 10939, 10945, 10954, 11017, 11020, 11135,
            11274, 11720, 11724, 11756, 11757, 11758, 12563, 12873, 12874, 12875,
            12876, 12877, 12878, 12894, 12895, 12896, 12897, 12898, 12899, 12971,
            12972, 12973, 12974, 12975, 12976, 13181, 13182, 13183, 13184, 13185,
            13186, 13187, 13297, 13316, 13318
        };

        /// <summary>
        /// Possible leg clothes that can be equipt.
        /// </summary>
        public static readonly short[] Legs =
        {
            7378, 7380, 7382, 7368, 7366, 7388, 646, 648,
		    650, 652, 654, 428, 1097, 1095, 7593, 6625, 8020, 8015, 7384, 6141,
		    1835, 538, 1033, 5555, 4759, 6386, 6390, 2497, 2495, 2493, 1099,
		    4113, 4103, 4093, 6924, 6187, 6185, 6181, 3059, 4510, 4505, 4070,
		    6108, 538, 542, 548, 1011, 1013, 1015, 1067, 1069, 1071, 1073,
		    1075, 1077, 1079, 1081, 1083, 1085, 1087, 1089, 1091, 1093, 2585,
		    2593, 2601, 2609, 2617, 2625, 2655, 2663, 2671, 3059, 3389, 3472,
		    3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3483, 3485, 3795,
		    4087, 4585, 4712, 4714, 4722, 4730, 4738, 4751, 4759, 4874, 4875,
		    4876, 4877, 4898, 4899, 4900, 4901, 4922, 4923, 4924, 4925, 4946,
		    4947, 4948, 4949, 4970, 4971, 4972, 4973, 4994, 4995, 4996, 4997,
		    5048, 5050, 5052, 5576, 6107, 6130, 6187, 6390, 6386, 6390, 6396,
		    6404, 6135, 6809, 6916, 4091, 4111, 6655, 6654, 7398, 7398, 7386,
		    6324, 6343, 6353, 3387, 5036, 5038, 5040, 8840, 8991, 8992, 8993, 
            8994, 8995, 8996, 8997, 9071, 9098, 9636, 9642, 9676, 9678, 9923, 
            10035, 10041, 10047, 10055, 10059, 10063, 10067, 10332, 10340, 
            10346, 10372, 10380, 10388, 10394, 10396, 10402, 10406, 10410, 
            10414, 10418, 10422, 10426, 10430, 10434, 10438, 10464, 10466, 
            10468, 10555, 10726, 10742, 10744, 10838, 10857, 10864, 10940, 
            10956, 11018, 11022, 11722, 11726, 12561, 12880, 12881, 12882, 
            12883, 12884, 12885, 12901, 12902, 12903, 12904, 12905, 12906, 
            12978, 12979, 12980, 12981, 12982, 12983, 13174, 13175, 13176, 
            13177, 13178, 13179, 13180, 13298, 13317, 13364, 13366, 13368, 
            10824
        };

        /// <summary>
        /// Possible full body clothes that can be equipt which covers your arms aswell.
        /// </summary>
        public static readonly short[] FullBody =
        {
            636, 638, 640, 642, 644, 426, 8031, 8027,
		    6617, 544, 577, 3793, 3773, 3775, 3771, 3769, 3767, 6139, 1035,
		    540, 5553, 4757, 1833, 1835, 6388, 6384, 4111, 4101, 4868, 4869,
		    4870, 4871, 4892, 4893, 4894, 4895, 4916, 4917, 4918, 4919, 4940,
		    4941, 4942, 4943, 4964, 4965, 4966, 4967, 4988, 4989, 4990, 6186, 
            6184, 6180, 3058, 4509, 4504, 4069, 4728, 4736,4712, 6107, 2661, 
            3140, 1115, 1117, 1119, 1121, 1123, 1125, 1127, 2583, 2591, 2599, 
            2607, 2615, 6322, 2623, 2653, 2669, 3481, 4720, 4728, 4749, 2661, 
            6129, 6916, 4091, 6654, 6133, 75, 7399, 7390, 5575, 6341, 6351, 
            3387, 5030, 5032, 5034, 7392, 8839, 8952, 8953, 8954, 8955, 8956, 
            8957, 8958, 9070, 9097, 9634, 9640, 9674, 9924, 9944, 10037, 10043, 
            10049, 10053, 10057, 10061, 10065, 10316, 10318, 10320, 10322, 10324, 
            10330, 10338, 10348, 10370, 10378, 10386, 10400, 10404, 10408, 10412, 
            10416, 10420, 10424, 10428, 10432, 10436, 10458, 10460, 10462, 10551, 
            10564, 10605, 10610, 10611, 10618, 10619, 10620, 10621, 10622, 10623, 
            10624, 10625, 10626, 10627, 10628, 10630, 10631, 10632, 10633, 10680, 
            10681, 10682, 10683, 10684, 10685, 10688, 10690, 10691, 10697, 10698, 
            10714, 10715, 10716, 10717, 10718, 10727, 10748, 10750, 10752, 10754, 
            10756, 10776, 10778, 10780, 10782, 10784, 10786, 10788, 10790, 10792, 
            10794, 10798, 10800, 10837, 10863, 10939, 10945, 10954, 11017, 11020, 
            11135, 11274, 11720, 11724, 11756, 11757, 11758, 12563, 12873, 12874, 
            12875, 12876, 12877, 12878, 12894, 12895, 12896, 12897, 12898, 12899, 
            12971, 12972, 12973, 12974, 12975, 12976, 13181, 13182, 13183, 13184, 
            13185, 13186, 13187, 13297, 13316, 13318, 10634, 10686, 10687, 10822
        };

        /// <summary>
        /// Possible full hats that can be equipt which covers everything except your beard.
        /// </summary>
        public static readonly short[] FullHats =
        {
            4041, 4042, 1147, 3748, 6137, 6128, 3753,
		    3755, 3749, 3751, 1149, 3751, 7594, 4708, 4716, 4745, 4732, 5554,
		    4753, 4732, 4753, 6188, 4511, 4056, 4071, 4724, 6109, 2665, 1153,
		    1155, 1157, 1159, 1161, 1163, 1165, 2587, 2595, 2605, 2613, 2619,
		    2627, 2657, 2673, 3486, 6402, 6394, 6131, 74, 7539, 7539, 7534,
		    5574, 6326,8924, 8925, 8926, 8927, 8928, 9472, 9729, 9733, 9749,
            9752, 9755, 9758, 9761, 9764, 9767, 9770, 9773, 9776, 9779, 9782,
            9785, 9788, 9791, 9794, 9797, 9800, 9803, 9806, 9809, 9812, 9814,
            9945, 9946, 9950, 10039, 10045, 10051, 10172, 10286, 10288, 10290,
            10292, 10294, 10296, 10298, 10300, 10302, 10304, 10306, 10308,
            10310, 10312, 10314, 10334, 10342, 10374, 10382, 10390, 10392,
            10398, 10452, 10454, 10456, 10507, 10547, 10548, 10549, 10550,
            10589, 10601, 10602, 10603, 10604, 10606, 10608, 10613, 10614,
            10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707,
            10708, 10709, 10710, 10711, 10712, 10713, 10722, 10740, 10746, 
            11200, 11280, 11282, 11789, 11790, 12171, 12204, 12206, 12207, 
            12209, 12559, 12568, 12658, 12659, 12672, 12673, 12674, 12675, 
            12676, 12677, 12678, 12679, 12866, 12867, 12868, 12869, 12870, 
            12871, 12887, 12888, 12889, 12890, 12891, 12892, 12936, 12937,
            12938, 12939, 12940, 12941, 12943, 12944, 12945, 12946, 12947, 
            12948, 12950, 12951, 12952, 12953, 12954, 12955, 12957, 12958, 
            12959, 12960, 12961, 12962, 12964, 12965, 12966, 12967, 12968,
            12969, 13105, 13107, 13109, 13111, 13113, 13115, 13167, 13168,
            13169, 13170, 13171, 13172, 13173, 13263, 13339, 13340, 13341, 
            13342, 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 
            13351, 13352, 13353, 13354, 13355, 13357, 13376, 13377, 13378, 
            13399, 13400
        };

        /// <summary>
        /// Possible full masks that can be equipt which covers everything.
        /// </summary>
        public static readonly short[] FullMask =
        {
            4502, 4551, 6623, 7990, 7594, 1153, 1155, 1157,
		    1159, 1161, 1163, 1165, 4732, 5554, 4753, 4611, 6188, 3507, 4511,
		    4056, 4071, 4724, 2665, 1053, 1055, 1057, 8464, 8466, 8468, 8470, 
            8472, 8474, 8476, 8478, 8480, 8482, 8484, 8486, 8488, 8490, 8492,
            8494, 8682, 8684, 8686, 8688, 8690, 8692, 8694, 8696, 8698, 8700,
            8702, 8704, 8706, 8708, 8710, 8712, 8901, 8903, 8905, 8907, 8909,
            8911, 8913, 8915, 8917, 8919, 8921, 9068, 9096, 9629, 9672, 9920,
            9925, 10350, 10609, 10612, 10615, 10616, 10617, 10629, 10692,
            10721, 10723, 10728, 10828, 11021, 11277, 11278, 11335, 11663, 
            11664, 11665, 11674, 11675, 11676, 11718, 12558, 12662, 12663, 
            12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12680,
            12681, 13396, 13397, 13398
        };

        /// <summary>
        /// Possible weapons that can be equipt.
        /// </summary>
        public static readonly short[] Weapons = 
        {
            35, 278, 667, 746, 747, 767, 772, 800, 801, 802, 803, 804, 805, 806, 
            807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 825, 826, 
            827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 863, 864, 865, 
            866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 975, 1203, 1205, 
            1207, 1209, 1211, 1213, 1215, 1217, 1219, 1221, 1223, 1225, 1227, 1229, 
            1231, 1233, 1235, 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251, 1253, 
            1255, 1257, 1259, 1261, 1263, 1265, 1267, 1269, 1271, 1273, 1275, 1277, 
            1279, 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1301, 
            1303, 1305, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1337, 1339, 
            1341, 1343, 1345, 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1363, 
            1365, 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383, 1385, 1387, 
            1389, 1391, 1393, 1395, 1397, 1399, 1401, 1403, 1405, 1407, 1409, 1419, 
            1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434, 2402, 2415, 2416, 2417, 
            3053, 3054, 3093, 3094, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 4037, 
            4039, 4068, 4151, 4162, 4170, 4503, 4508, 4580, 4582, 4584, 4675, 4710, 
            4726, 4734, 4862, 4863, 4864, 4865, 4934, 4935, 4936, 4937, 5018, 5060, 
            5061, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 
            5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 
            5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 
            5663, 5664, 5665, 5666, 5667, 5668, 5670, 5672, 5674, 5676, 5678, 5680, 
            5682, 5684, 5686, 5688, 5690, 5692, 5694, 5696, 5698, 5700, 5702, 5704, 
            5706, 5708, 5710, 5712, 5714, 5716, 5718, 5720, 5722, 5724, 5726, 5728, 
            5730, 5734, 5736, 6522, 6523, 6525, 6527, 6562, 6563, 6589, 6591, 6593, 
            6595, 6597, 6601, 6603, 6605, 6607, 6611, 6613, 6739, 6745, 6746, 6760, 
            6762, 6764, 6908, 6910, 6912, 6914, 7142, 7537, 7639, 7640, 7641, 7642, 
            7643, 7644, 7645, 7646, 7647, 7648, 7675, 7806, 7807, 7808, 7809, 8650, 
            8652, 8654, 8656, 8658, 8660, 8662, 8664, 8666, 8668, 8670, 8672, 8674, 
            8676, 8678, 8680, 8841, 8872, 8874, 8876, 8878, 8880, 8966, 8967, 8968, 
            8969, 8970, 8971, 839, 841, 843, 845, 847, 849, 851, 853, 855, 857, 859,
            861, 1307, 1309, 1311, 1313, 1315, 1317, 1319, 2883, 3095, 3096, 3097, 
            3098, 3099, 3100, 3101, 3190, 3192, 3194, 3196, 3198, 3200, 3202, 3204, 
            4158, 4159, 4212, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 
            4223, 4236, 4718, 4747, 4755, 4827, 4886, 4887, 4888, 4889, 4910, 4911, 
            4912, 4913, 4958, 4959, 4960, 4961, 4982, 4983, 4984, 4985, 5016, 6526, 
            6528, 6587, 6599, 6609, 6817, 6818, 7158, 7535, 7668, 7671, 7673, 8929,
            8650, 8652, 8654, 8656, 8658, 8660, 8662, 8664, 8666, 8668, 8670,
            8672, 8674, 8676, 8678, 8680, 8841, 8872, 8874, 8876, 8878, 8966, 
            8967, 8968, 8969, 8970, 8971, 9013, 9044, 9046, 9048, 9050, 9084, 
            9091, 9092, 9093, 9174, 9176, 9177, 9179, 9181, 9183, 9185, 9703, 
            10010, 10033, 10034, 10129, 10156, 10440, 10442, 10444, 10487, 10491, 
            10501, 10581, 10582, 10583, 10584, 10732, 10840, 10952, 11012, 11013, 
            11037, 11061, 11165, 11167, 11230, 11231, 11233, 11234, 11235, 11259, 
            11367, 11369, 11371, 11373, 11375, 11377, 11379, 11381, 11382, 11384, 
            11386, 11388, 11389, 11391, 11393, 11395, 11396, 11398, 11400, 11402, 
            11403, 11405, 11407, 11409, 11410, 11412, 11414, 11416, 11417, 11419, 
            11736, 11738, 11951, 12570, 12578, 12579, 12580, 12844, 13081, 13095, 
            13097, 13099, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 
            13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 
            13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 
            13145, 13146, 13163, 13164, 13165, 13230, 13290, 9705, 10146, 10147, 
            10148, 10149, 10150, 10280, 10282, 10284, 10735, 10858, 10887, 11694, 
            11696, 11698, 11700, 11716, 11730, 12845, 12846, 12847, 12848, 12849, 
            8880
        };

        /// <summary>
        /// Possible weapons that are 2 handed.
        /// </summary>
        public static readonly short[] Twohanders =
        {
            10146, 10147, 10148, 10149, 10150, 10280, 10282, 10284, 10735, 10858,
            10887, 11694, 11696, 11698, 11700, 11716, 11730, 12845, 12846, 12847, 
            12848, 12849, 8880, 839, 841, 843, 845, 847, 849, 851, 853, 855, 857, 
            859, 861, 1307, 1309, 1311, 1313, 1315, 1317, 1319, 2883, 3095, 3096, 
            3097, 3098, 3099, 3100, 3101, 3190, 3192, 3194, 3196, 3198, 3200, 3202, 
            3204, 4158, 4159, 4212, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 
            4222, 4223, 4236, 4718, 4747, 4755, 4827, 4886, 4887, 4888, 4889, 4910, 
            4911, 4912, 4913, 4958, 4959, 4960, 4961, 4982, 4983, 4984, 4985, 5016, 
            6526, 6528, 6587, 6599, 6609, 6817, 6818, 7158, 7535, 7668, 7671, 7673, 
            8929 
        };
        #endregion Fields

        #region Properties
        /// <summary>
        /// The interface settings/configs for the specified weapon.
        /// </summary>
        public static Dictionary<short, short> WeaponInterfaces { get; private set; }
        /// <summary>
        /// Gets the special weapon's interface config.
        /// </summary>
        public static Dictionary<short, byte[]> SpecialWeapons { get; private set; }
        /// <summary>
        /// Gets a collection of weapon stand animations.
        /// </summary>
        public static Dictionary<short, short> WeaponStandAnimations { get; private set; }
        /// <summary>
        /// Gets a collection of weapon walk animations.
        /// </summary>
        public static Dictionary<short, short> WeaponWalkAnimations { get; private set; }
        /// <summary>
        /// Gets a collection of weapon run animations.
        /// </summary>
        public static Dictionary<short, short> WeaponRunAnimations { get; private set; }
        /// <summary>
        /// Gets a collection of weapons corresponding attack animation if the attack style is not 2.
        /// </summary>
        public static Dictionary<short, short> WeaponAttackAnimation1 { get; private set; }
        /// <summary>
        /// Gets a collection of weapons corresponding attack animation if the attack style is 2.
        /// </summary>
        public static Dictionary<short, short> WeaponAttackAnimation2 { get; private set; }

        /// <summary>
        /// Gets a collection of weapons that are two handed.
        /// </summary>
        public static List<short> TwoHandedWeapons { get; private set; }
        #endregion Properties

        #region Methods
        /// <summary>
        /// Fills all the containers with specific data.
        /// </summary>
        public static void Fill()
        {
            WeaponInterfaces = GenWeaponIntefaces();
            SpecialWeapons = GenSpecialWeapons();
            WeaponStandAnimations = GenWeaponStandAnimations();
            WeaponWalkAnimations = GenWeaponWalkAnimations();
            WeaponRunAnimations = GenWeaponRunAnimations();
            WeaponAttackAnimation1 = GenWeaponAttackAnimations1();
            WeaponAttackAnimation2 = GenWeaponAttackAnimations2();
            TwoHandedWeapons = GenTwoHandedWeapons();
        }

        /// <summary>
        /// Fills the weapon interface container with 
        /// </summary>
        /// <returns>Returns a Dictionary containing the generated data.</returns>
        private static Dictionary<short, short> GenWeaponIntefaces()
        {
            Dictionary<short, short> dict = new Dictionary<short, short>();

            // Add all specified weapon inteface settings/configs.
            #region Add to container
            dict.Add(48, 77);
            dict.Add(667, 81);
            dict.Add(746, 73);
            dict.Add(747, 73);
            dict.Add(767, 79);
            dict.Add(772, 90);
            dict.Add(800, 91);
            dict.Add(801, 91);
            dict.Add(802, 91);
            dict.Add(803, 91);
            dict.Add(804, 91);
            dict.Add(805, 91);
            dict.Add(806, 91);
            dict.Add(807, 91);
            dict.Add(808, 91);
            dict.Add(809, 91);
            dict.Add(810, 91);
            dict.Add(811, 91);
            dict.Add(837, 77);
            dict.Add(839, 77);
            dict.Add(841, 77);
            dict.Add(843, 77);
            dict.Add(845, 77);
            dict.Add(847, 77);
            dict.Add(849, 77);
            dict.Add(851, 77);
            dict.Add(853, 77);
            dict.Add(855, 77);
            dict.Add(857, 77);
            dict.Add(859, 77);
            dict.Add(861, 77);
            dict.Add(863, 91);
            dict.Add(864, 91);
            dict.Add(865, 91);
            dict.Add(866, 91);
            dict.Add(867, 91);
            dict.Add(868, 91);
            dict.Add(869, 91);
            dict.Add(870, 91);
            dict.Add(871, 91);
            dict.Add(872, 91);
            dict.Add(873, 91);
            dict.Add(874, 91);
            dict.Add(875, 91);
            dict.Add(876, 91);
            dict.Add(1203, 73);
            dict.Add(1205, 73);
            dict.Add(1207, 73);
            dict.Add(1209, 73);
            dict.Add(1211, 73);
            dict.Add(1213, 73);
            dict.Add(1215, 73);
            dict.Add(1217, 73);
            dict.Add(1219, 73);
            dict.Add(1221, 73);
            dict.Add(1223, 73);
            dict.Add(1225, 73);
            dict.Add(1227, 73);
            dict.Add(1229, 73);
            dict.Add(1231, 73);
            dict.Add(1233, 73);
            dict.Add(1235, 73);
            dict.Add(1237, 87);
            dict.Add(1239, 87);
            dict.Add(1241, 87);
            dict.Add(1243, 87);
            dict.Add(1245, 87);
            dict.Add(1247, 87);
            dict.Add(1249, 87);
            dict.Add(1251, 87);
            dict.Add(1253, 87);
            dict.Add(1255, 87);
            dict.Add(1257, 87);
            dict.Add(1259, 87);
            dict.Add(1261, 87);
            dict.Add(1263, 87);
            dict.Add(1265, 83);
            dict.Add(1267, 83);
            dict.Add(1269, 83);
            dict.Add(1271, 83);
            dict.Add(1273, 83);
            dict.Add(1275, 83);
            dict.Add(1277, 81);
            dict.Add(1279, 81);
            dict.Add(1281, 81);
            dict.Add(1283, 81);
            dict.Add(1285, 81);
            dict.Add(1287, 81);
            dict.Add(1289, 81);
            dict.Add(1291, 81);
            dict.Add(1293, 81);
            dict.Add(1295, 81);
            dict.Add(1297, 81);
            dict.Add(1299, 81);
            dict.Add(1301, 81);
            dict.Add(1303, 81);
            dict.Add(1305, 81);
            dict.Add(1307, 82);
            dict.Add(1309, 82);
            dict.Add(1311, 82);
            dict.Add(1313, 82);
            dict.Add(1315, 82);
            dict.Add(1317, 82);
            dict.Add(1319, 82);
            dict.Add(1321, 81);
            dict.Add(1323, 81);
            dict.Add(1325, 81);
            dict.Add(1327, 81);
            dict.Add(1329, 81);
            dict.Add(1331, 81);
            dict.Add(1333, 81);
            dict.Add(1335, 76);
            dict.Add(1337, 76);
            dict.Add(1339, 76);
            dict.Add(1341, 76);
            dict.Add(1343, 76);
            dict.Add(1345, 76);
            dict.Add(1347, 76);
            dict.Add(1349, 75);
            dict.Add(1351, 75);
            dict.Add(1353, 75);
            dict.Add(1355, 75);
            dict.Add(1357, 75);
            dict.Add(1359, 75);
            dict.Add(1361, 75);
            dict.Add(1363, 75);
            dict.Add(1365, 75);
            dict.Add(1367, 75);
            dict.Add(1369, 75);
            dict.Add(1371, 75);
            dict.Add(1373, 75);
            dict.Add(1375, 75);
            dict.Add(1377, 75);
            dict.Add(1379, 90);
            dict.Add(1381, 90);
            dict.Add(1383, 90);
            dict.Add(1385, 90);
            dict.Add(1387, 90);
            dict.Add(1389, 90);
            dict.Add(1391, 90);
            dict.Add(1393, 90);
            dict.Add(1395, 90);
            dict.Add(1397, 90);
            dict.Add(1399, 90);
            dict.Add(1401, 90);
            dict.Add(1403, 90);
            dict.Add(1405, 90);
            dict.Add(1407, 90);
            dict.Add(1409, 90);
            dict.Add(1420, 88);
            dict.Add(1422, 88);
            dict.Add(1424, 88);
            dict.Add(1426, 88);
            dict.Add(1428, 88);
            dict.Add(1430, 88);
            dict.Add(1432, 88);
            dict.Add(1434, 88);
            dict.Add(2415, 90);
            dict.Add(2416, 90);
            dict.Add(2417, 90);
            dict.Add(2883, 77);
            dict.Add(3053, 90);
            dict.Add(3054, 90);
            dict.Add(3093, 91);
            dict.Add(3095, 78);
            dict.Add(3096, 78);
            dict.Add(3097, 78);
            dict.Add(3098, 78);
            dict.Add(3099, 78);
            dict.Add(3100, 78);
            dict.Add(3101, 78);
            dict.Add(3190, 84);
            dict.Add(3192, 84);
            dict.Add(3194, 84);
            dict.Add(3196, 84);
            dict.Add(3198, 84);
            dict.Add(3200, 84);
            dict.Add(3202, 84);
            dict.Add(3204, 84);
            dict.Add(4068, 81);
            dict.Add(4151, 93);
            dict.Add(4153, 76);
            dict.Add(4158, 87);
            dict.Add(4170, 90);
            dict.Add(4212, 77);
            dict.Add(4214, 77);
            dict.Add(4215, 77);
            dict.Add(4216, 77);
            dict.Add(4217, 77);
            dict.Add(4218, 77);
            dict.Add(4219, 77);
            dict.Add(4220, 77);
            dict.Add(4221, 77);
            dict.Add(4222, 77);
            dict.Add(4223, 77);
            dict.Add(4236, 77);
            dict.Add(4503, 81);
            dict.Add(4508, 81);
            dict.Add(4580, 87);
            dict.Add(4587, 81);
            dict.Add(4675, 90);
            dict.Add(4710, 90);
            dict.Add(4718, 75);
            dict.Add(4726, 87);
            dict.Add(4734, 79);
            dict.Add(4747, 76);
            dict.Add(4755, 88);
            dict.Add(4827, 77);
            dict.Add(4862, 90);
            dict.Add(4863, 90);
            dict.Add(4864, 90);
            dict.Add(4865, 90);
            dict.Add(4866, 90);
            dict.Add(4886, 75);
            dict.Add(4887, 75);
            dict.Add(4888, 75);
            dict.Add(4889, 75);
            dict.Add(4890, 75);
            dict.Add(4910, 87);
            dict.Add(4911, 87);
            dict.Add(4912, 87);
            dict.Add(4913, 87);
            dict.Add(4914, 87);
            dict.Add(4934, 77);
            dict.Add(4935, 77);
            dict.Add(4936, 77);
            dict.Add(4937, 77);
            dict.Add(4938, 77);
            dict.Add(5016, 87);
            dict.Add(5060, 75);
            dict.Add(5061, 75);
            dict.Add(5668, 73);
            dict.Add(5670, 73);
            dict.Add(5672, 73);
            dict.Add(5674, 73);
            dict.Add(5676, 73);
            dict.Add(5678, 73);
            dict.Add(5680, 73);
            dict.Add(5682, 73);
            dict.Add(5684, 73);
            dict.Add(5686, 73);
            dict.Add(5688, 73);
            dict.Add(5690, 73);
            dict.Add(5692, 73);
            dict.Add(5694, 73);
            dict.Add(5696, 73);
            dict.Add(5698, 73);
            dict.Add(5700, 73);
            dict.Add(5702, 73);
            dict.Add(6528, 76);
            dict.Add(6562, 90);
            dict.Add(6563, 90);
            dict.Add(6587, 78);
            dict.Add(6589, 75);
            dict.Add(6591, 73);
            dict.Add(6593, 73);
            dict.Add(6595, 73);
            dict.Add(6597, 73);
            dict.Add(6599, 84);
            dict.Add(6601, 88);
            dict.Add(6603, 90);
            dict.Add(6605, 81);
            dict.Add(6607, 81);
            dict.Add(6609, 82);
            dict.Add(6611, 81);
            dict.Add(6613, 76);
            dict.Add(6724, 77);
            dict.Add(6818, 81);
            dict.Add(7158, 82);
            dict.Add(7675, 81);
            dict.Add(7806, 81);
            dict.Add(7807, 75);
            dict.Add(7808, 88);
            dict.Add(7809, 87);
            dict.Add(8841, 88);
            dict.Add(8872, 73);
            dict.Add(8874, 73);
            dict.Add(8876, 73);
            dict.Add(8878, 73);
            dict.Add(8880, 79);
            dict.Add(9084, 90);
            dict.Add(9091, 90);
            dict.Add(9092, 90);
            dict.Add(9093, 90);
            dict.Add(9174, 79);
            dict.Add(9176, 79);
            dict.Add(9177, 79);
            dict.Add(9179, 79);
            dict.Add(9181, 79);
            dict.Add(9183, 79);
            dict.Add(9185, 79);
            dict.Add(9703, 81);
            dict.Add(9705, 77);
            dict.Add(10156, 79);
            dict.Add(10280, 77);
            dict.Add(10282, 77);
            dict.Add(10284, 77);
            dict.Add(10858, 81);
            dict.Add(10887, 88);
            dict.Add(11061, 88);
            dict.Add(11165, 79);
            dict.Add(11167, 79);
            dict.Add(11230, 91);
            dict.Add(11235, 77);
            dict.Add(11694, 82);
            dict.Add(11696, 82);
            dict.Add(11698, 82);
            dict.Add(11700, 82);
            dict.Add(11716, 87);
            dict.Add(11730, 82);
            dict.Add(11736, 90);
            dict.Add(11738, 90);
            dict.Add(13081, 79);
            dict.Add(13290, 81);
            #endregion Add to container

            return dict;
        }

        /// <summary>
        /// Generates a dictionary that contains all items that have a corresponding 'specials' interface.
        /// </summary>
        /// <returns>Returns a Dictionary containing the generated data.</returns>
        private static Dictionary<short, byte[]> GenSpecialWeapons()
        {
            Dictionary<short, byte[]> dict = new Dictionary<short, byte[]>();

            // Add all specified special weapons.
            #region Add to container
            dict.Add(35, new byte[2] { 82, 12 });
            dict.Add(859, new byte[2] { 77, 13 });
            dict.Add(861, new byte[2] { 77, 13 });
            dict.Add(1215, new byte[2] { 89, 12 });
            dict.Add(1231, new byte[2] { 89, 12 });
            dict.Add(1305, new byte[2] { 82, 12 });
            dict.Add(1377, new byte[2] { 75, 12 });
            dict.Add(1434, new byte[2] { 88, 12 });
            dict.Add(3101, new byte[2] { 78, 12 });
            dict.Add(3204, new byte[2] { 84, 10 });
            dict.Add(4151, new byte[2] { 93, 10 });
            dict.Add(4153, new byte[2] { 76, 10 });
            dict.Add(4587, new byte[2] { 82, 12 });
            dict.Add(5680, new byte[2] { 89, 12 });
            dict.Add(5698, new byte[2] { 89, 12 });
            dict.Add(6724, new byte[2] { 77, 13 });
            dict.Add(6739, new byte[2] { 75, 12 });
            dict.Add(6746, new byte[2] { 82, 12 });
            dict.Add(7158, new byte[2] { 81, 12 });
            dict.Add(8872, new byte[2] { 89, 12 });
            dict.Add(8874, new byte[2] { 89, 12 });
            dict.Add(8876, new byte[2] { 89, 12 });
            dict.Add(8878, new byte[2] { 89, 12 });
            dict.Add(8880, new byte[2] { 79, 10 });
            dict.Add(10284, new byte[2] { 77, 13 });
            dict.Add(10887, new byte[2] { 88, 12 });
            dict.Add(11037, new byte[2] { 82, 12 });
            dict.Add(11061, new byte[2] { 88, 12 });
            dict.Add(11235, new byte[2] { 77, 13 });
            dict.Add(11694, new byte[2] { 81, 12 });
            dict.Add(11696, new byte[2] { 81, 12 });
            dict.Add(11698, new byte[2] { 81, 12 });
            dict.Add(11700, new byte[2] { 81, 12 });
            dict.Add(11730, new byte[2] { 81, 12 });
            #endregion Add to cotnainer

            return dict;
        }

        /// <summary>
        /// Generates a dictionary that contains all weapons and it's corresponding stand animation.
        /// </summary>
        /// <returns>Returns a Dictionary containing generated data.</returns>
        private static Dictionary<short, short> GenWeaponStandAnimations()
        {
            Dictionary<short, short> dict = new Dictionary<short, short>();

            // Add all specified weapons with specific stand animations.
            #region Add to container
            dict.Add(84, 809);
            dict.Add(772, 809);
            dict.Add(1237, 809);
            dict.Add(1239, 809);
            dict.Add(1241, 809);
            dict.Add(1243, 809);
            dict.Add(1245, 809);
            dict.Add(1247, 809);
            dict.Add(1249, 809);
            dict.Add(1251, 809);
            dict.Add(1253, 809);
            dict.Add(1255, 809);
            dict.Add(1257, 809);
            dict.Add(1259, 809);
            dict.Add(1261, 809);
            dict.Add(1263, 809);
            dict.Add(1305, 809);
            dict.Add(1307, 7047);
            dict.Add(1309, 7047);
            dict.Add(1311, 7047);
            dict.Add(1313, 7047);
            dict.Add(1315, 7047);
            dict.Add(1317, 7047);
            dict.Add(1319, 7047);
            dict.Add(1379, 809);
            dict.Add(1381, 809);
            dict.Add(1383, 809);
            dict.Add(1385, 809);
            dict.Add(1387, 809);
            dict.Add(1389, 809);
            dict.Add(1391, 809);
            dict.Add(1393, 809);
            dict.Add(1395, 809);
            dict.Add(1397, 809);
            dict.Add(1399, 809);
            dict.Add(1401, 809);
            dict.Add(1403, 809);
            dict.Add(1405, 809);
            dict.Add(1407, 809);
            dict.Add(1409, 809);
            dict.Add(1413, 809);
            dict.Add(2415, 7047);
            dict.Add(2416, 7047);
            dict.Add(2417, 7047);
            dict.Add(3053, 809);
            dict.Add(3054, 809);
            dict.Add(3170, 809);
            dict.Add(3171, 809);
            dict.Add(3172, 809);
            dict.Add(3173, 809);
            dict.Add(3174, 809);
            dict.Add(3175, 809);
            dict.Add(3176, 809);
            dict.Add(3190, 809);
            dict.Add(3192, 809);
            dict.Add(3194, 809);
            dict.Add(3196, 809);
            dict.Add(3198, 809);
            dict.Add(3200, 809);
            dict.Add(3202, 809);
            dict.Add(3204, 809);
            dict.Add(4151, 10080);
            dict.Add(4153, 1662);
            dict.Add(4158, 809);
            dict.Add(4170, 809);
            dict.Add(4580, 809);
            dict.Add(4582, 809);
            dict.Add(4584, 809);
            dict.Add(4675, 809);
            dict.Add(4710, 809);
            dict.Add(4726, 809);
            dict.Add(4734, 2074);
            dict.Add(4755, 2061);
            dict.Add(4862, 809);
            dict.Add(4863, 809);
            dict.Add(4864, 809);
            dict.Add(4865, 809);
            dict.Add(4910, 809);
            dict.Add(4911, 809);
            dict.Add(4912, 809);
            dict.Add(4913, 809);
            dict.Add(5016, 809);
            dict.Add(5704, 809);
            dict.Add(5706, 809);
            dict.Add(5708, 809);
            dict.Add(5710, 809);
            dict.Add(5712, 809);
            dict.Add(5714, 809);
            dict.Add(5716, 809);
            dict.Add(5718, 809);
            dict.Add(5720, 809);
            dict.Add(5722, 809);
            dict.Add(5724, 809);
            dict.Add(5726, 809);
            dict.Add(5728, 809);
            dict.Add(5730, 809);
            dict.Add(5734, 809);
            dict.Add(5736, 809);
            dict.Add(6562, 809);
            dict.Add(6563, 809);
            dict.Add(6599, 809);
            dict.Add(6603, 809);
            dict.Add(6609, 7047);
            dict.Add(6908, 809);
            dict.Add(6910, 809);
            dict.Add(6912, 809);
            dict.Add(6914, 809);
            dict.Add(7158, 7047);
            dict.Add(7809, 809);
            dict.Add(9084, 809);
            dict.Add(9091, 809);
            dict.Add(9092, 809);
            dict.Add(9093, 809);
            dict.Add(10150, 809);
            dict.Add(10440, 809);
            dict.Add(10442, 809);
            dict.Add(10444, 809);
            dict.Add(10887, 5869);
            dict.Add(11694, 7047);
            dict.Add(11696, 7047);
            dict.Add(11698, 7047);
            dict.Add(11700, 7047);
            dict.Add(11716, 809);
            dict.Add(11730, 7047);
            dict.Add(11736, 809);
            dict.Add(11738, 809);
            dict.Add(11953, 809);
            dict.Add(13406, 809);
            dict.Add(13430, 809);
            dict.Add(13454, 7047);
            dict.Add(13629, 809);
            dict.Add(13630, 809);
            dict.Add(13631, 809);
            dict.Add(13632, 809);
            dict.Add(13633, 809);
            dict.Add(13634, 809);
            dict.Add(13635, 809);
            dict.Add(13636, 809);
            dict.Add(13637, 809);
            dict.Add(13638, 809);
            dict.Add(13639, 809);
            dict.Add(13640, 809);
            dict.Add(13641, 809);
            dict.Add(13642, 809);
            #endregion Add to cotnainer

            return dict;
        }

        /// <summary>
        /// Generates a dictionary that contains all weapons and it's corresponding walk animation.
        /// </summary>
        /// <returns>Returns a Dictionary containing generated data.</returns>
        private static Dictionary<short, short> GenWeaponWalkAnimations()
        {
            Dictionary<short, short> dict = new Dictionary<short, short>();

            // Add all specified weapons with specific walk animations.
            #region Add to container
            dict.Add(84, 1146);
            dict.Add(772, 1146);
            dict.Add(1237, 1146);
            dict.Add(1239, 1146);
            dict.Add(1241, 1146);
            dict.Add(1243, 1146);
            dict.Add(1245, 1146);
            dict.Add(1247, 1146);
            dict.Add(1249, 1146);
            dict.Add(1251, 1146);
            dict.Add(1253, 1146);
            dict.Add(1255, 1146);
            dict.Add(1257, 1146);
            dict.Add(1259, 1146);
            dict.Add(1261, 1146);
            dict.Add(1263, 1146);
            dict.Add(1307, 7046);
            dict.Add(1309, 7046);
            dict.Add(1311, 7046);
            dict.Add(1313, 7046);
            dict.Add(1315, 7046);
            dict.Add(1317, 7046);
            dict.Add(1319, 7046);
            dict.Add(1379, 1146);
            dict.Add(1381, 1146);
            dict.Add(1383, 1146);
            dict.Add(1385, 1146);
            dict.Add(1387, 1146);
            dict.Add(1389, 1146);
            dict.Add(1391, 1146);
            dict.Add(1393, 1146);
            dict.Add(1395, 1146);
            dict.Add(1397, 1146);
            dict.Add(1399, 1146);
            dict.Add(1401, 1146);
            dict.Add(1403, 1146);
            dict.Add(1405, 1146);
            dict.Add(1407, 1146);
            dict.Add(1409, 1146);
            dict.Add(1413, 1146);
            dict.Add(2415, 7046);
            dict.Add(2416, 7046);
            dict.Add(2417, 7046);
            dict.Add(3053, 1146);
            dict.Add(3054, 1146);
            dict.Add(3170, 1146);
            dict.Add(3171, 1146);
            dict.Add(3172, 1146);
            dict.Add(3173, 1146);
            dict.Add(3174, 1146);
            dict.Add(3175, 1146);
            dict.Add(3176, 1146);
            dict.Add(3190, 1146);
            dict.Add(3192, 1146);
            dict.Add(3194, 1146);
            dict.Add(3196, 1146);
            dict.Add(3198, 1146);
            dict.Add(3200, 1146);
            dict.Add(3202, 1146);
            dict.Add(3204, 1146);
            dict.Add(4151, 1660);
            dict.Add(4153, 1663);
            dict.Add(4158, 1146);
            dict.Add(4170, 1146);
            dict.Add(4580, 1146);
            dict.Add(4582, 1146);
            dict.Add(4584, 1146);
            dict.Add(4675, 1146);
            dict.Add(4710, 1146);
            dict.Add(4718, 2064);
            dict.Add(4726, 1146);
            dict.Add(4734, 2076);
            dict.Add(4755, 2060);
            dict.Add(4862, 1146);
            dict.Add(4863, 1146);
            dict.Add(4864, 1146);
            dict.Add(4865, 1146);
            dict.Add(4910, 1146);
            dict.Add(4911, 1146);
            dict.Add(4912, 1146);
            dict.Add(4913, 1146);
            dict.Add(5016, 1146);
            dict.Add(5704, 1146);
            dict.Add(5706, 1146);
            dict.Add(5708, 1146);
            dict.Add(5710, 1146);
            dict.Add(5712, 1146);
            dict.Add(5714, 1146);
            dict.Add(5716, 1146);
            dict.Add(5718, 1146);
            dict.Add(5720, 1146);
            dict.Add(5722, 1146);
            dict.Add(5724, 1146);
            dict.Add(5726, 1146);
            dict.Add(5728, 1146);
            dict.Add(5730, 1146);
            dict.Add(5734, 1146);
            dict.Add(5736, 1146);
            dict.Add(6528, 2064);
            dict.Add(6562, 1146);
            dict.Add(6563, 1146);
            dict.Add(6599, 1146);
            dict.Add(6603, 1146);
            dict.Add(6609, 7046);
            dict.Add(6908, 1146);
            dict.Add(6910, 1146);
            dict.Add(6912, 1146);
            dict.Add(6914, 1146);
            dict.Add(7158, 7046);
            dict.Add(7809, 1146);
            dict.Add(9084, 1146);
            dict.Add(9091, 1146);
            dict.Add(9092, 1146);
            dict.Add(9093, 1146);
            dict.Add(10150, 1146);
            dict.Add(10440, 1146);
            dict.Add(10442, 1146);
            dict.Add(10444, 1146);
            dict.Add(10887, 5867);
            dict.Add(11694, 7046);
            dict.Add(11696, 7046);
            dict.Add(11698, 7046);
            dict.Add(11700, 7046);
            dict.Add(11716, 1146);
            dict.Add(11730, 7046);
            dict.Add(11736, 1146);
            dict.Add(11738, 1146);
            dict.Add(11953, 1146);
            dict.Add(13454, 7046);
            dict.Add(13430, 1146);
            dict.Add(13406, 1146);
            dict.Add(13629, 1146);
            dict.Add(13630, 1146);
            dict.Add(13631, 1146);
            dict.Add(13632, 1146);
            dict.Add(13633, 1146);
            dict.Add(13634, 1146);
            dict.Add(13635, 1146);
            dict.Add(13636, 1146);
            dict.Add(13637, 1146);
            dict.Add(13638, 1146);
            dict.Add(13639, 1146);
            dict.Add(13640, 1146);
            dict.Add(13641, 1146);
            dict.Add(13642, 1146);
            #endregion Add to cotnainer

            return dict;
        }

        /// <summary>
        /// Generates a dictionary that contains all weapons and it's corresponding run animation.
        /// </summary>
        /// <returns>Returns a Dictionary containing generated data.</returns>
        private static Dictionary<short, short> GenWeaponRunAnimations()
        {
            Dictionary<short, short> dict = new Dictionary<short, short>();

            // Add all specified weapons with specific run animations.
            #region Add to container
            dict.Add(84, 1210);
            dict.Add(772, 1210);
            dict.Add(1237, 1210);
            dict.Add(1239, 1210);
            dict.Add(1241, 1210);
            dict.Add(1243, 1210);
            dict.Add(1245, 1210);
            dict.Add(1247, 1210);
            dict.Add(1249, 1210);
            dict.Add(1251, 1210);
            dict.Add(1253, 1210);
            dict.Add(1255, 1210);
            dict.Add(1257, 1210);
            dict.Add(1259, 1210);
            dict.Add(1261, 1210);
            dict.Add(1263, 1210);
            dict.Add(1307, 7039);
            dict.Add(1309, 7039);
            dict.Add(1311, 7039);
            dict.Add(1313, 7039);
            dict.Add(1315, 7039);
            dict.Add(1317, 7039);
            dict.Add(1319, 7039);
            dict.Add(1379, 1210);
            dict.Add(1381, 1210);
            dict.Add(1383, 1210);
            dict.Add(1385, 1210);
            dict.Add(1387, 1210);
            dict.Add(1389, 1210);
            dict.Add(1391, 1210);
            dict.Add(1393, 1210);
            dict.Add(1395, 1210);
            dict.Add(1397, 1210);
            dict.Add(1399, 1210);
            dict.Add(1401, 1210);
            dict.Add(1403, 1210);
            dict.Add(1405, 1210);
            dict.Add(1407, 1210);
            dict.Add(1409, 1210);
            dict.Add(1413, 1210);
            dict.Add(2415, 7039);
            dict.Add(2416, 7039);
            dict.Add(2417, 7039);
            dict.Add(3053, 1210);
            dict.Add(3054, 1210);
            dict.Add(3170, 1210);
            dict.Add(3171, 1210);
            dict.Add(3172, 1210);
            dict.Add(3173, 1210);
            dict.Add(3174, 1210);
            dict.Add(3175, 1210);
            dict.Add(3176, 1210);
            dict.Add(3190, 1210);
            dict.Add(3192, 1210);
            dict.Add(3194, 1210);
            dict.Add(3196, 1210);
            dict.Add(3198, 1210);
            dict.Add(3200, 1210);
            dict.Add(3202, 1210);
            dict.Add(3204, 1210);
            dict.Add(4151, 1661);
            dict.Add(4153, 1664);
            dict.Add(4158, 1210);
            dict.Add(4170, 1210);
            dict.Add(4580, 1210);
            dict.Add(4582, 1210);
            dict.Add(4584, 1210);
            dict.Add(4675, 1210);
            dict.Add(4710, 1210);
            dict.Add(4726, 1210);
            dict.Add(4734, 2077);
            dict.Add(4755, 1831);
            dict.Add(4862, 1210);
            dict.Add(4863, 1210);
            dict.Add(4864, 1210);
            dict.Add(4865, 1210);
            dict.Add(4910, 1210);
            dict.Add(4911, 1210);
            dict.Add(4912, 1210);
            dict.Add(4913, 1210);
            dict.Add(5016, 1210);
            dict.Add(5704, 1210);
            dict.Add(5706, 1210);
            dict.Add(5708, 1210);
            dict.Add(5710, 1210);
            dict.Add(5712, 1210);
            dict.Add(5714, 1210);
            dict.Add(5716, 1210);
            dict.Add(5718, 1210);
            dict.Add(5720, 1210);
            dict.Add(5722, 1210);
            dict.Add(5724, 1210);
            dict.Add(5726, 1210);
            dict.Add(5728, 1210);
            dict.Add(5730, 1210);
            dict.Add(5734, 1210);
            dict.Add(5736, 1210);
            dict.Add(6562, 1210);
            dict.Add(6563, 1210);
            dict.Add(6599, 1210);
            dict.Add(6603, 1210);
            dict.Add(6609, 7039);
            dict.Add(6908, 1210);
            dict.Add(6910, 1210);
            dict.Add(6912, 1210);
            dict.Add(6914, 1210);
            dict.Add(7158, 7039);
            dict.Add(7809, 1210);
            dict.Add(9084, 1210);
            dict.Add(9091, 1210);
            dict.Add(9092, 1210);
            dict.Add(9093, 1210);
            dict.Add(10150, 1210);
            dict.Add(10440, 1210);
            dict.Add(10442, 1210);
            dict.Add(10444, 1210);
            dict.Add(10887, 5868);
            dict.Add(11694, 7039);
            dict.Add(11696, 7039);
            dict.Add(11698, 7039);
            dict.Add(11700, 7039);
            dict.Add(11716, 1210);
            dict.Add(11730, 7039);
            dict.Add(11736, 1210);
            dict.Add(11738, 1210);
            dict.Add(11953, 1210);
            dict.Add(13406, 1210);
            dict.Add(13430, 1210);
            dict.Add(13454, 7039);
            dict.Add(13629, 1210);
            dict.Add(13630, 1210);
            dict.Add(13631, 1210);
            dict.Add(13632, 1210);
            dict.Add(13633, 1210);
            dict.Add(13634, 1210);
            dict.Add(13635, 1210);
            dict.Add(13636, 1210);
            dict.Add(13637, 1210);
            dict.Add(13638, 1210);
            dict.Add(13639, 1210);
            dict.Add(13640, 1210);
            dict.Add(13641, 1210);
            dict.Add(13642, 1210);
            #endregion Add to cotnainer

            return dict;
        }

        /// <summary>
        /// Generates a dictionary that cotnains all the weapons and it's corresponding attack animation.
        /// </summary>
        /// <returns>Returns a Dictionary containing generated data.</returns>
        private static Dictionary<short, short> GenWeaponAttackAnimations1()
        {
            Dictionary<short, short> dict = new Dictionary<short, short>();

            // Add all specified weapons with specific run animations.
            #region Add to container
            dict.Add(839, 426);
            dict.Add(841, 426);
            dict.Add(843, 426);
            dict.Add(845, 426);
            dict.Add(847, 426);
            dict.Add(849, 426);
            dict.Add(851, 426);
            dict.Add(853, 426);
            dict.Add(855, 426);
            dict.Add(857, 426);
            dict.Add(861, 426);
            dict.Add(1307, 7041);
            dict.Add(1309, 7041);
            dict.Add(1311, 7041);
            dict.Add(1313, 7041);
            dict.Add(1315, 7041);
            dict.Add(1317, 7041);
            dict.Add(1319, 7041);
            dict.Add(1265, 401);
            dict.Add(1266, 401);
            dict.Add(1267, 401);
            dict.Add(1268, 401);
            dict.Add(1269, 401);
            dict.Add(1270, 401);
            dict.Add(1271, 401);
            dict.Add(1272, 401);
            dict.Add(1273, 401);
            dict.Add(1274, 401);
            dict.Add(1275, 401);
            dict.Add(1276, 401);
            dict.Add(4151, 1658);
            dict.Add(4212, 426);
            dict.Add(4214, 426);
            dict.Add(4718, 2066);
            dict.Add(4755, 2062);
            dict.Add(4827, 426);
            dict.Add(5698, 402);
            dict.Add(6724, 426);
            dict.Add(9174, 4230);
            dict.Add(9175, 4230);
            dict.Add(9176, 4230);
            dict.Add(9177, 4230);
            dict.Add(9178, 4230);
            dict.Add(9179, 4230);
            dict.Add(9180, 4230);
            dict.Add(9181, 4230);
            dict.Add(9182, 4230);
            dict.Add(9183, 4230);
            dict.Add(9184, 4230);
            dict.Add(9185, 4230);
            dict.Add(9186, 4230);
            dict.Add(10887, 5865);
            dict.Add(11694, 7041);
            dict.Add(11696, 7041);
            dict.Add(11698, 7041);
            dict.Add(11700, 7041);
            #endregion Add to cotnainer

            return dict;
        }

        /// <summary>
        /// Generates a dictionary that cotnains all the weapons and it's corresponding attack animation.
        /// </summary>
        /// <returns>Returns a Dictionary containing generated data.</returns>
        private static Dictionary<short, short> GenWeaponAttackAnimations2()
        {
            Dictionary<short, short> dict = new Dictionary<short, short>();

            // Add all specified weapons with specific run animations.
            #region Add to container
            dict.Add(4718, 2067);
            #endregion Add to cotnainer

            return dict;
        }

        /// <summary>
        /// Generates a list that contains all the two handed weapons.
        /// </summary>
        /// <returns>Returns a List containing generated data.</returns>
        private static List<short> GenTwoHandedWeapons()
        {
            List<short> list = new List<short>();

            // Add all two handed weapons.
            #region Add to container
            list.Add(839);
            list.Add(841);
            list.Add(843);
            list.Add(845);
            list.Add(847);
            list.Add(849);
            list.Add(851);
            list.Add(853);
            list.Add(855);
            list.Add(857);
            list.Add(859);
            list.Add(861);
            list.Add(1307);
            list.Add(1309);
            list.Add(1311);
            list.Add(1313);
            list.Add(1315);
            list.Add(1317);
            list.Add(1319);
            list.Add(1413);
            list.Add(2883);
            list.Add(3190);
            list.Add(3192);
            list.Add(3194);
            list.Add(3196);
            list.Add(3198);
            list.Add(3200);
            list.Add(3202);
            list.Add(3204);
            list.Add(4153);
            list.Add(4212);
            list.Add(4214);
            list.Add(4735);
            list.Add(4726);
            list.Add(4747);
            list.Add(6528);
            list.Add(6599);
            list.Add(6609);
            list.Add(6724);
            list.Add(7158);
            list.Add(11694);
            list.Add(11696);
            list.Add(11698);
            list.Add(11700);
            #endregion Add to container

            return list;
        }


        /// <summary>
        /// Whether the specified item is two handed. 
        /// </summary>
        /// <param name="id">The id of the item to check for.</param>
        /// <returns>Returns true if the item is two handed, false if not.</returns>
        public static bool IsTwoHanded(short id)
        {
            return TwoHandedWeapons.Contains(id);
        }

        /// <summary>
        /// Whether the specified item is a full body equipment.
        /// </summary>
        /// <param name="id">The id of the item to check for.</param>
        /// <returns>Returns true if the item is full body; false if not.</returns>
        public static bool IsFullBody(short id)
        {
            return FullBody.Contains(id);
        }

        /// <summary>
        /// Whether the specified item is a full hat equipment.
        /// </summary>
        /// <param name="id">The id of the item to check for.</param>
        /// <returns>Returns true if the item is full hat; false if not.</returns>
        public static bool IsFullHat(short id)
        {
            return FullHats.Contains(id);
        }

        /// <summary>
        /// Whether the specified item is a full mask equipment.
        /// </summary>
        /// <param name="id">The id of the item to check for.</param>
        /// <returns>Returns true if the item is full mask; false if not.</returns>
        public static bool IsFullMask(short id)
        {
            return FullMask.Contains(id);
        }

        /// <summary>
        /// Gets the suitable attack animation for the equipted weapon.
        /// </summary>
        /// <param name="equipment">The equipment to generate attack animation for.</param>
        /// <returns>The animation id of the sutied attack animation.</returns>
        public static short GetAttackAnimation(this EquipmentContainer equipment)
        {
            Item item = equipment[EquipmentSlot.Weapon];
            short weapon = item != null ? item.Id : (short)-1;

            if (equipment.Character.Preferences.AttackStyle != 2)
            {
                if (WeaponAttackAnimation2.ContainsKey(weapon))
                {
                    return WeaponAttackAnimation2[weapon];
                }
                else if (WeaponAttackAnimation1.ContainsKey(weapon))
                {
                    return WeaponAttackAnimation1[weapon];
                }
                else
                {
                    return 422;
                }
            }
            else
            {
                if (WeaponAttackAnimation1.ContainsKey(weapon))
                {
                    return WeaponAttackAnimation1[weapon];
                }
                else
                {
                    return 423;
                }
            }
        }

        /// <summary>
        /// Gets the item type.
        /// </summary>
        /// <returns>Returns the item type id.</returns>
        public static sbyte GetItemType(int itemId)
        {
            for (int i = 0; i < Hats.Length; i++)
            {
                if (itemId == Hats[i])
                {
                    return EquipmentSlot.Hat;
                }
            }
            for (int i = 0; i < Capes.Length; i++)
            {
                if (itemId == Capes[i])
                {
                    return EquipmentSlot.Cape;
                }
            }
            for (int i = 0; i < Boots.Length; i++)
            {
                if (itemId == Boots[i])
                {
                    return EquipmentSlot.Feet;
                }
            }
            for (int i = 0; i < Gloves.Length; i++)
            {
                if (itemId == Gloves[i])
                {
                    return EquipmentSlot.Hands;
                }
            }
            for (int i = 0; i < Shields.Length; i++)
            {
                if (itemId == Shields[i])
                {
                    return EquipmentSlot.Shield;
                }
            }
            for (int i = 0; i < Amulets.Length; i++)
            {
                if (itemId == Amulets[i])
                {
                    return EquipmentSlot.Amulet;
                }
            }
            for (int i = 0; i < Arrows.Length; i++)
            {
                if (itemId == Arrows[i])
                {
                    return EquipmentSlot.Arrow;
                }
            }
            for (int i = 0; i < Rings.Length; i++)
            {
                if (itemId == Rings[i])
                {
                    return EquipmentSlot.Ring;
                }
            }
            for (int i = 0; i < Body.Length; i++)
            {
                if (itemId == Body[i])
                {
                    return EquipmentSlot.Chest;
                }
            }
            for (int i = 0; i < Legs.Length; i++)
            {
                if (itemId == Legs[i])
                {
                    return EquipmentSlot.Legs;
                }
            }
            for (int i = 0; i < Weapons.Length; i++)
            {
                if (itemId == Weapons[i])
                {
                    return EquipmentSlot.Weapon;
                }
            }
            return -1;
        }
        #endregion Methods
    }
}
